package ma.xin.shi.configurations;

import java.util.ArrayList;
import java.util.List;

public class ECUConfig {
    private List<ECUEntry> ecuList = new ArrayList<>();

    // 兼容旧调用：addECU（保留原方法名）
    public void addECU(ECUEntry entry) {
        addEcu(entry); // 调用统一的新方法
    }

    // 新增标准方法：addEcu（推荐使用这个）
    public void addEcu(ECUEntry entry) {
        ecuList.add(entry);
    }

    // 删除指定索引的 ECU 条目
    public void removeEcu(int index) {
        if (index >= 0 && index < ecuList.size()) {
            ecuList.remove(index);
        }
    }

    // 获取指定索引的 ECU 条目
    public ECUEntry getEcuByIndex(int index) {
        if (index >= 0 && index < ecuList.size()) {
            return ecuList.get(index);
        }
        return null;
    }

    // 兼容旧调用：getAllECUs（保留原方法名）
    public List<ECUEntry> getAllECUs() {
        return getAllEcus(); // 调用新方法
    }

    // 新增标准方法：getAllEcus（推荐使用这个）
    public List<ECUEntry> getAllEcus() {
        return new ArrayList<>(ecuList); // 返回副本避免外部修改
    }

    // 更新指定索引的 ECU 数据
    public void updateEcu(int index, ECUEntry updatedEntry) {
        if (index >= 0 && index < ecuList.size()) {
            ecuList.set(index, updatedEntry);
        }
    }

    // 按名称获取 ECU
    public ECUEntry getECUByName(String name) {
        for (ECUEntry entry : ecuList) {
            if (entry.getEcuName().equals(name)) {
                return entry;
            }
        }
        return null;
    }

    // 按名称删除 ECU
    public boolean removeECU(String name) {
        return ecuList.removeIf(entry -> entry.getEcuName().equals(name));
    }

    // 按名称更新 ECU 数据
    public boolean updateECU(String name, ECUEntry updatedEntry) {
        for (int i = 0; i < ecuList.size(); i++) {
            if (ecuList.get(i).getEcuName().equals(name)) {
                ecuList.set(i, updatedEntry);
                return true;
            }
        }
        return false;
    }
}
